上一篇文章提到了 range()
的用法,這種一串英文配一組小括號的語法,稱作函式 (Function)。不同的函式有不同的作用,在 Python 裡面有許多內建函式 (Built-in Functions)可以使用,除了 range()
可以用來列舉數字以外,還有像是 abs()
可以對數字取絕對值:
>>> abs(-3)
3
透過 abs(-3)
這行程式碼,我們呼叫 (Call) abs
這個函式,並且把 -3
當作參數 (Argument)傳進去,並且得到 3
這個回傳值 (Return Value),這就是構成函式使用的三大要素。
其他也有 round()
函式用來對浮點數進行四捨五入:
>>> round(3.14)
3
>>> round(1.57)
2
divmod()
筆者覺得最方便的內建函式是 divmod()
,這個函式可以同時進行整數除法與餘數除法:
>>> divmod(7, 3)
(2, 1)
咦,這個 divmod()
看起來是回傳了兩個數字欸?這樣的回傳,要怎麼放在變數裡面呢?既然有兩個回傳值,那就給他兩個變數來放:
>>> a, b = divmod(7, 3)
>>> a
2
>>> b
1
其中 a
存放的是商數,而 b
存放的就是餘數。運用這個函式,就能輕鬆改寫之前計算時間的程式囉!讓我們將 16521 秒換算成小時分鐘:
>>> s = 16521
>>> m, s = divmod(s, 60)
>>> h, m = divmod(m, 60)
>>> h, m, s
(4, 35, 21)
這樣寫是不是變得輕鬆又簡潔呢!
函式與函式之間也能組合在一起,例如 sum()
可以用來加總,那就可以把 sum()
跟 range()
結合在一起:
>>> sum(range(100))
4950
這樣不用 For 迴圈也能算出 0 到 99 的總和囉!
a = -34.56
,取絕對值並四捨五入,然後計算從 1 加到該數值的總和。s = 2309011
,使用 divmod()
計算這是幾週幾天幾時幾分幾秒。完整的程式碼放在此 Colab 裡面供各位參考。